import { createSlice, PayloadAction } from '@reduxjs/toolkit'
import type { RootState } from '../index'
// 为 slice state 定义一个类型
interface shopStateType {
    count: number
}

// 使用该类型定义初始 state
const initialState: shopStateType = {
    count: 0
};

export const shopSlice = createSlice({
    name: 'shop',
    // `createSlice` 将从 `initialState` 参数推断 state 类型
    initialState,
    reducers: {
        add: state => {
            state.count += 1
        },
        // 使用 PayloadAction 类型声明 `action.payload` 的内容
        jian: (state, action: PayloadAction<number>) => {
            state.count -= action.payload    //  number 表示payload的值的类型
        }
    }
})

// 导出对应的修改state 数据的任务方法
export const { add, jian } = shopSlice.actions
// 选择器等其他代码可以使用导入的 `RootState` 类型
// 直接获取仓库中的值
// export const selectCount = (state: RootState) => state.shop.count
export default shopSlice.reducer;




